package com.yabushan.system.service.impl;

import java.util.List;

import com.yabushan.common.exception.CustomException;
import com.yabushan.common.utils.StringUtils;
import com.yabushan.system.domain.YmxGiftInfo;
import com.yabushan.system.domain.YmxTemplateInfo;
import com.yabushan.system.domain.vo.YmxGifiTemplateInfoVo;
import com.yabushan.system.service.IYmxGiftInfoService;
import com.yabushan.system.service.IYmxTemplateInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yabushan.system.mapper.YmxGifiTemplateInfoMapper;
import com.yabushan.system.domain.YmxGifiTemplateInfo;
import com.yabushan.system.service.IYmxGifiTemplateInfoService;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * 礼物模板关系Service业务层处理
 *
 * @author yabushan
 * @date 2021-04-14
 */
@Service
public class YmxGifiTemplateInfoServiceImpl implements IYmxGifiTemplateInfoService {

    @Resource
    private IYmxGiftInfoService ymxGiftInfoService;

    @Resource
    private IYmxTemplateInfoService ymxTemplateInfoService;

    @Resource
    private YmxGifiTemplateInfoMapper ymxGifiTemplateInfoMapper;

    /**
     * 查询礼物模板关系
     *
     * @param giftTemplateId 礼物模板关系ID
     * @return 礼物模板关系
     */
    @Override
    public YmxGifiTemplateInfo selectYmxGifiTemplateInfoById(String giftTemplateId) {
        return ymxGifiTemplateInfoMapper.selectYmxGifiTemplateInfoById(giftTemplateId);
    }

    /**
     * 查询礼物模板关系列表
     *
     * @param ymxGifiTemplateInfo 礼物模板关系
     * @return 礼物模板关系
     */
    @Override
    public List<YmxGifiTemplateInfo> selectYmxGifiTemplateInfoList(YmxGifiTemplateInfo ymxGifiTemplateInfo) {
        return ymxGifiTemplateInfoMapper.selectYmxGifiTemplateInfoList(ymxGifiTemplateInfo);
    }

    /**
     * 新增礼物模板关系
     *
     * @param ymxGifiTemplateInfo 礼物模板关系
     * @return 结果
     */
    @Override
    @Transactional(rollbackFor = {Exception.class}, propagation = Propagation.REQUIRED)
    public int insertYmxGifiTemplateInfo(YmxGifiTemplateInfo ymxGifiTemplateInfo) {
        int result = 0;
//        YmxGiftInfo ymxGifiInfo = new YmxGiftInfo();
//        String giftId = StringUtils.getUUID();
//        String templateId = StringUtils.getUUID();
//        String giftTemplateId = StringUtils.getUUID();
//        ymxGifiInfo.setGiftId(giftId);
//        ymxGifiInfo.setGiftName(ymxGifiTemplateInfoVo.getGiftName());
//        ymxGifiInfo.setGiftImage(ymxGifiTemplateInfoVo.getGiftImage());
//        result = ymxGiftInfoService.insertYmxGiftInfo(ymxGifiInfo);
//        if (result == 0) {
//            throw new CustomException("新增礼物信息异常，请联系管理员！");
//        }
//        YmxTemplateInfo ymxTemplateInfo = new YmxTemplateInfo();
//        ymxTemplateInfo.setTemplateId(templateId);
//        ymxTemplateInfo.setTemplateName(ymxGifiTemplateInfoVo.getTemplateName());
//        result = ymxTemplateInfoService.insertYmxTemplateInfo(ymxTemplateInfo);
//        if (result == 0) {
//            throw new CustomException("新增礼物模板信息异常，请联系管理员！");
//        }
//        YmxGifiTemplateInfo ymxGifiTemplateInfo = new YmxGifiTemplateInfo();
//        ymxGifiTemplateInfo.setGiftId(giftId);
//        ymxGifiTemplateInfo.setTemplateId(templateId);
//        ymxGifiTemplateInfo.setGiftTemplateId(giftTemplateId);
        result = ymxGifiTemplateInfoMapper.insertYmxGifiTemplateInfo(ymxGifiTemplateInfo);
        return result;
    }

    /**
     * 修改礼物模板关系
     *
     * @param ymxGifiTemplateInfo 礼物模板关系
     * @return 结果
     */
    @Override
    public int updateYmxGifiTemplateInfo(YmxGifiTemplateInfo ymxGifiTemplateInfo) {
        return ymxGifiTemplateInfoMapper.updateYmxGifiTemplateInfo(ymxGifiTemplateInfo);
    }

    /**
     * 批量删除礼物模板关系
     *
     * @param giftTemplateIds 需要删除的礼物模板关系ID
     * @return 结果
     */
    @Override
    public int deleteYmxGifiTemplateInfoByIds(String[] giftTemplateIds) {
        return ymxGifiTemplateInfoMapper.deleteYmxGifiTemplateInfoByIds(giftTemplateIds);
    }

    /**
     * 删除礼物模板关系信息
     *
     * @param templateId 礼物模板ID
     * @return 结果
     */
    @Override
    public int deleteYmxTemplateInfoById(String templateId) {
        return ymxGifiTemplateInfoMapper.deleteYmxTemplateInfoById(templateId);
    }

    @Override
    public List<YmxGifiTemplateInfo> selectYmxTemplateInfoById(String templateId) {
        return ymxGifiTemplateInfoMapper.selectYmxTemplateInfoById(templateId);
    }

    /**
     * 删除礼物模板关系信息
     *
     * @param giftTemplateId 礼物模板ID
     * @return 结果
     */
    @Override
    public int deleteYmxGifiTemplateInfoById(String giftTemplateId) {
        return ymxGifiTemplateInfoMapper.deleteYmxGifiTemplateInfoById(giftTemplateId);
    }
}
